package com.demo.mybatis.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.mi.rule.db.entity.MiEntity;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 资源表 实体
 */
@Data
@TableName("sys_resource")
public class SysResource extends Model<SysResource> implements MiEntity {
    private static final long serialVersionUID = 1L;

    //参数-非数据库字段
    @TableField(exist = false)
    private String pUrl;

    /*** PK ***/
    @TableId(value = "id", type = IdType.AUTO)
    private String id;

    /*** pid ***/
    @TableField("pid")
    private String pid;

    /*** 资源地址 ***/
    @TableField("url")
    private String url;

    /*** 名称 ***/
    @TableField("name")
    private String name;

    /*** 描述 ***/
    @TableField("desc")
    private String desc;

    /*** 排序(默认=100) ***/
    @TableField("sort")
    private Integer sort;

    /*** 数据创建者 ***/
    @TableField(value = "create_uid", fill = FieldFill.INSERT)
    private String createUid;

    /*** 数据创建时间 ***/
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /*** 数据修改者 ***/
    @TableField(value = "update_uid", fill = FieldFill.INSERT_UPDATE)
    private String updateUid;

    /*** 数据更新时间 ***/
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /*** 是否可用(1=可用 , 2=不可用) ***/
    @TableField("is_use")
    private String isUse;

    /*** 逻辑删除(1=已删除 , 2=未删除) ***/
    @TableField("is_delete")
    private String isDelete;


    @Override
    public int hashCode() {
        if (id != null) {
            return id.hashCode();
        }
        return super.hashCode();
    }

    @Override
    public boolean equals(Object obj) {
        if (obj instanceof SysResource) {
            SysResource resource = (SysResource) obj;
            if (id != null) {
                return id.equals(resource.id);
            }
        }
        return super.equals(obj);
    }


}
